//
//  UITextField+Extension.h
//  TableDemo
//
//  Created by jutuo on 2020/4/1.
//  Copyright © 2020 jutuo. All rights reserved.
//

#import <UIKit/UIKit.h>
#import <objc/runtime.h>
NS_ASSUME_NONNULL_BEGIN

typedef NS_ENUM(NSUInteger, UITextFieldFormatterType) {
    
    // version：1.0
    UITextFieldFormatterTypeAny = 0,             // 不过滤
    UITextFieldFormatterTypeDisableEmoji,        //过滤表情
    UITextFieldFormatterTypePhoneNumber,         // 11位电话号码
    UITextFieldFormatterTypeNumber,              // 数字
    UITextFieldFormatterTypeDecimal,             // 小数
    UITextFieldFormatterTypeAlphabet,            // 英文字母
    UITextFieldFormatterTypeNumberAndAlphabet,   // 数字+英文字母
    UITextFieldFormatterTypeCustom               // 自定义
};

@interface UITextField (Extension)

// 格式类型
@property (nonatomic, assign) UITextFieldFormatterType formatterType;

// 限制长度
@property (nonatomic, assign) NSUInteger limitLength;


// 允许的字符集
@property (nonatomic, copy)   NSString *characterSet;

// 小数位, decimalPlace 默认是2，最小是1，不能设为0
@property (nonatomic, assign) NSUInteger decimalPlace;

/**
 *在您设置好您需要的过滤方案后，请在textField的代理中，调用此方法，否则您的设置将不会有任何的作用
 */
- (void)textFieldDidBeginEditing;
- (void)textFieldDidChange;
/**
 Set all text selected.
 */
- (void)selectAllText;
/**
 * 获取选择范围
 */
- (NSRange)selectedRange;

/**
 Set text in range selected.
 
 @param range  The range of selected text in a document.
 */
- (void)setSelectedRange:(NSRange)range;
@end


NS_ASSUME_NONNULL_END
